////////////////////////////////////////////////////////////////////////////////////
//
//	
//							MiTAC Corporation		
//				NO. 187, TIDING BLVD., SEC. 2, TAIPEI, TAIWAN
//	
// 			(c) Copyright 2006, MiTAC Corporation, Taipei, Taiwan  
//						All rights reserved.
//-------------------------------------------------------------------------------------
//
//	
//	File:	kernel_asm.h
//	Description:	call by myself
//
//	Programer: Visual.Wei
//	Date: 2006-3-20
//
////////////////////////////////////////////

#ifndef	__KERNEL_ASM_H
#define	__KERNEL_ASM_H

#include <image_cfg.h>


//level 1 page table base address,16kB align
#define PA_L1_PT_BASE 0x30184000

//level 2 page table base address,reserved for level 1 page table+0x4000
#define PA_L2_PT_BASE_FFF  (PA_L1_PT_BASE+0x4000)
#define PA_L2_PT_BASE_200  (PA_L2_PT_BASE_FFF+0x400)

#define INTR_VEC_PHY_BASE	0x00000000

#define INTR_STACK_PHY_BASE 0x30184000



void _page_enable(UINT32);
void _page_disable(void);
void _EnableICache(void);
void _DisableICache(void);
void _EnableDCache(void);
void _DisableDCache(void);
void _InvalidateIDCache(void);
void _InvalidateICache(void);
void _InvalidateDCache(void);
void _InvalidateTLB(void);

void _trap_init();
void _swi();

void page_init();
void page_deinit();
void IPLIntrInit();
void IPLIntrDeinit();
void _arm9_deep_sleep();

struct regs
{
	UINT32 cp_fsr;	//0x0
	UINT32 cp_far;	//0x4
	UINT32 pc;		//0x8
};


void IPLTimerStart();
#endif
